<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ms="http://www.main-solutions.com/facelets"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">
<ui:composition template="../templates/layout.xhtml">
<ui:define name="title">Administrador de Campañas</ui:define>
<ui:define name="content">
<p:spacer height="5px"/>
    <p:panel>
        <h:outputText value="Administrador de Campañas" styleClass="text_header_page"/>
    </p:panel>
    <p:spacer height="5px"/>
    <h:panelGroup>
        <h:form id="frmPrincipal">

            <p:panel id="pnlBusqueda" header="Criterios de Búsqueda">
                <p:panelGrid>
                    <p:row>
                        <p:column>
                            <p:outputLabel for="txtCampana" value="Campaña"/>
                        </p:column>
                        <p:column>
                            <p:inputText id="txtCampana"
                                         value="#{maestroCampanaJsfBean.campanaFlt.nombre}"
                                         maxlength="15">
                            </p:inputText>
                        </p:column>
                        <p:column>
                            <p:message for="txtCampana" display="text"/>
                        </p:column>
                        <p:column>
                            <p:outputLabel for="cmbCategoriaCampana" value="Categoria"/>
                        </p:column>
                        <p:column>
                            <p:selectOneMenu id="cmbCategoriaCampana"
                                             value="#{maestroCampanaJsfBean.campanaFlt.categoriaCampana}"
                                             style="width:150px;">
                                <f:selectItem itemLabel="Seleccione" itemValue="" noSelectionOption="true"/>
                                <f:selectItems value="#{maestroCampanaJsfBean.cmbCategoriaCampana}"
                                               var="categoriaSelect"
                                               itemLabel="#{categoriaSelect.nombre}"
                                               itemValue="#{categoriaSelect.codigo}"/>
                            </p:selectOneMenu>
                        </p:column>
                        <p:column>
                            <p:message for="cmbCategoriaCampana" display="text"/>
                        </p:column>
                        <p:column>
                            <p:outputLabel for="txtFechaInicioDe" value="Fecha Inicio"/>
                        </p:column>
                        <p:column>
                            <p:calendar id="txtFechaInicioDe" value="#{maestroCampanaJsfBean.campanaFlt.fechaInicioDe}"
                                        size="15" navigator="true" pattern="dd/MM/yyyy"/>
                            <h:outputLabel value="a"/>
                            <p:calendar value="#{maestroCampanaJsfBean.campanaFlt.fechaInicioHasta}"
                                        size="15" navigator="true" pattern="dd/MM/yyyy"/>
                        </p:column>
                        <p:column>
                            <p:message for="txtFechaInicioDe" display="text"/>
                        </p:column>
                    </p:row>
                    <p:row>
                        <p:column>
                            <p:outputLabel for="cmbTipoCampana" value="Semestre"/>
                        </p:column>
                        <p:column>
                            <p:selectOneMenu id="cmbTipoCampana"
                                             value="#{maestroCampanaJsfBean.campanaFlt.tipo}"
                                             style="width:150px;">
                                <f:selectItem itemLabel="Seleccione" itemValue="" noSelectionOption="true"/>
                                <f:selectItems value="#{maestroCampanaJsfBean.cmbTipoCampana}"
                                               var="tipoCampanaSelect"
                                               itemLabel="#{tipoCampanaSelect.nombre}"
                                               itemValue="#{tipoCampanaSelect.codigo}"/>
                            </p:selectOneMenu>
                        </p:column>
                        <p:column>
                            <p:message for="cmbTipoCampana" display="text"/>
                        </p:column>
                        <p:column>
                            <p:outputLabel for="cmbEstado" value="Estado"/>
                        </p:column>
                        <p:column>
                            <p:selectOneMenu id="cmbEstado"
                                             value="#{maestroCampanaJsfBean.campanaFlt.estado}"
                                             style="width:150px;">
                                <f:selectItem itemLabel="Seleccione" itemValue="" noSelectionOption="true"/>
                                <f:selectItems value="#{maestroCampanaJsfBean.cmbEstado}"
                                               var="estadoSelect"
                                               itemLabel="#{estadoSelect.nombre}"
                                               itemValue="#{estadoSelect.codigo}"/>
                            </p:selectOneMenu>
                        </p:column>
                        <p:column>
                            <p:message for="cmbEstado" display="text"/>
                        </p:column>


                        <p:column>
                            <p:outputLabel for="txtFechaFinDe" value="Fecha Fin"/>
                        </p:column>
                        <p:column>
                            <p:calendar id="txtFechaFinDe" value="#{maestroCampanaJsfBean.campanaFlt.fechaFinDe}"
                                        size="15" navigator="true" pattern="dd/MM/yyyy"/>
                            <h:outputLabel value="a"/>
                            <p:calendar value="#{maestroCampanaJsfBean.campanaFlt.fechaFinHasta}"
                                        size="15" navigator="true" pattern="dd/MM/yyyy"/>
                        </p:column>
                        <p:column>
                            <p:message for="txtFechaFinDe" display="text"/>
                        </p:column>
                    </p:row>
                    <p:row>
                        <p:column colspan="5">
                            <p:commandButton value="Buscar" icon="ui-icon-refresh" id="cmdBuscarCampana"
                                             actionListener="#{maestroCampanaJsfBean.findAction}"
                                             ajax="true" update=":frmPrincipal:pnlBusqueda :frmPrincipal:panelResultados :messages"
                                    />
                            <p:commandButton ajax="true" value="Limpiar" id="cmdLimpiarCampana" icon="ui-icon-refresh"
                                             actionListener="#{maestroCampanaJsfBean.cleanAction}"
                                             update=":frmPrincipal :messages"/>

                        </p:column>
                    </p:row>
                </p:panelGrid>
            </p:panel>

            <p:spacer height="10px"/>

            <!-- Panel de resultados (donde está la tabla)  -->
            <p:panel id="panelResultados" header="Campañas">
                <p:toolbar>

                    <p:toolbarGroup align="left">
                        <p:commandButton id="cmdNuevaCampana" value="Nuevo" ajax="true"
                                         actionListener="#{maestroCampanaJsfBean.showNewDialog}"
                                         oncomplete="wvCreateDialog.show()" update=":createDialog"
                                />
                        <p:commandButton id="cmdEditarCampana" value="Editar"
                                         actionListener="#{maestroCampanaJsfBean.showEditDialog}"
                                         update=":messages :createDialog">
                            <f:attribute name="tableName" value="registros"/>
                            <f:attribute name="dialogName" value="wvCreateDialog"/>
                        </p:commandButton>
                        <p:commandButton id="cmdInactivarCampana" value="Inactivar"
                                         actionListener="#{maestroCampanaJsfBean.showDeleteDialog}"
                                         update=":messages">
                            <f:attribute name="tableName" value="registros"/>
                            <f:attribute name="dialogName" value="wvDeleteDialog"/>
                        </p:commandButton>
                    </p:toolbarGroup>
                </p:toolbar>


                <p:dataTable id="registros" value="#{maestroCampanaJsfBean.campanaList}"
                             var="registro" rowKey="#{registro.codigo}" paginator="true" rows="25"
                             selection="#{maestroCampanaJsfBean.nuevaCampana}"
                             selectionMode="single"
                             paginatorPosition="bottom" emptyMessage="No existen registros"
                             paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                             rowsPerPageTemplate="5,10,25,50">
                    <p:column style="text-align: left">
                        <f:facet name="header">
                            <h:outputText value="Campaña"/>
                        </f:facet>
                        <h:outputText value="#{registro.nombre}">
                        </h:outputText>
                    </p:column>
                    <p:column style="text-align: left">
                        <f:facet name="header">
                            <h:outputText value="Semestre"/>
                        </f:facet>
                        <h:outputText value="#{registro.tipoCampana}">
                            <ms:cvl categoria="tipoCampana"/>
                        </h:outputText>
                    </p:column>
                    <p:column style="text-align: left">
                        <f:facet name="header">
                            <h:outputText value="Categoria"/>
                        </f:facet>
                        <h:outputText value="#{registro.categoriaCampana}">
                            <ms:cvl categoria="categoriaCampana"/>
                        </h:outputText>
                    </p:column>
                    <p:column style="text-align: left">
                        <f:facet name="header">
                            <h:outputText value="Fecha Inicio"/>
                        </f:facet>
                        <h:outputText value="#{registro.fechaInicio}">
                            <f:convertDateTime pattern="dd/MM/yyyy" timeZone="America/Lima" type="date"/>
                        </h:outputText>
                    </p:column>

                    <p:column style="text-align: left">
                        <f:facet name="header">
                            <h:outputText value="Fecha Fin"/>
                        </f:facet>
                        <h:outputText value="#{registro.fechaFin}">
                            <f:convertDateTime pattern="dd/MM/yyyy" timeZone="America/Lima" type="date"/>
                        </h:outputText>
                    </p:column>
                    <p:column style="text-align: left">
                        <f:facet name="header">
                            <h:outputText value="Estado"/>
                        </f:facet>
                        <h:outputText value="#{registro.estado}">
                            <ms:cvl categoria="estado"/>
                        </h:outputText>

                    </p:column>
                </p:dataTable>
            </p:panel>
        </h:form>
    </h:panelGroup>

</ui:define>
<ui:define name="modal">
    <p:dialog id="createDialog" header="Campaña" modal="true" onShow="upperInput();" closeOnEscape="true"
              widgetVar="wvCreateDialog" resizable="false" showEffect="fade" hideEffect="fade">
        <p:ajax event="close" update=":frmPrincipal:panelResultados :createDialog"
                listener="#{maestroCampanaJsfBean.handleDialogClose}"/>
        <p:panel id="nuevaCampana">
            <h:form id="frmnuevaCampana">
                <p:panelGrid id="gridBusquedaDialog">
                    <p:row>
                        <p:column>
                            <p:outputLabel for="txtNombre" value="Campaña"/>
                        </p:column>
                        <p:column colspan="4">
                            <p:inputText id="txtNombre" required="true" requiredMessage="*" value="#{maestroCampanaJsfBean.nuevaCampana.nombre}"
                                         size="50" maxlength="100"
                                         />
                        </p:column>
                        <p:column>
                            <p:message for="txtNombre" display="text"/>
                        </p:column>

                        <p:column>
                            <p:outputLabel for="cmbTipoCampana" value="Semestre"/>
                        </p:column>
                        <p:column>
                            <p:selectOneMenu id="cmbTipoCampana"  required="true" requiredMessage="*"
                                             value="#{maestroCampanaJsfBean.nuevaCampana.tipoCampana}"
                                             style="width:150px;">
                                <f:selectItem itemLabel="Seleccione" itemValue="" noSelectionOption="true"/>
                                <f:selectItems value="#{maestroCampanaJsfBean.cmbTipoCampana}"
                                               var="tipoCampanaSelect"
                                               itemLabel="#{tipoCampanaSelect.nombre}"
                                               itemValue="#{tipoCampanaSelect.codigo}"/>
                            </p:selectOneMenu>
                        </p:column>
                        <p:column>
                            <p:message for="cmbTipoCampana" display="text"/>
                        </p:column>

                    </p:row>
                    <p:row>
                        <p:column>
                            <p:outputLabel for="cmbCategoriaCampana" value="Categoria"/>
                        </p:column>
                        <p:column>
                            <p:selectOneMenu id="cmbCategoriaCampana" required="true" requiredMessage="*"
                                             value="#{maestroCampanaJsfBean.nuevaCampana.categoriaCampana}"
                                             style="width:150px;">
                                <f:selectItem itemLabel="Seleccione" itemValue="" noSelectionOption="true"/>
                                <f:selectItems value="#{maestroCampanaJsfBean.cmbCategoriaCampana}"
                                               var="categoriaCampanaSelect"
                                               itemLabel="#{categoriaCampanaSelect.nombre}"
                                               itemValue="#{categoriaCampanaSelect.codigo}"/>
                            </p:selectOneMenu>
                        </p:column>
                        <p:column>
                            <p:message for="cmbCategoriaCampana" display="text"/>
                        </p:column>
                        <p:column>
                            <p:outputLabel for="acCampana" value="Campaña"/>
                        </p:column>
                        <p:column>
                            <p:autoComplete id="acCampana" converter="#{managerCampanaDTOConverter}"
                                            minQueryLength="2" forceSelection="true"
                                            value="#{maestroCampanaJsfBean.nuevaCampana.campanaReferencia}" global="false"
                                            var="referencia" itemLabel="#{referencia.nombre}" itemValue="#{referencia}"
                                            scrollHeight="200"
                                            completeMethod="#{maestroCampanaJsfBean.completeCampana}">
                            </p:autoComplete>
                        </p:column>
                    </p:row>
                    <p:row>
                        <p:column>
                            <p:outputLabel for="txtFechaInicio" value="Fecha Inicio"/>
                        </p:column>
                        <p:column>
                            <p:calendar id="txtFechaInicio" required="true" requiredMessage="*" value="#{maestroCampanaJsfBean.nuevaCampana.fechaInicio}"
                                        size="12" navigator="true" pattern="dd/MM/yyyy"/>
                        </p:column>
                        <p:column>
                            <p:message for="txtFechaInicio" display="text"/>
                        </p:column>
                        <p:column>
                            <p:outputLabel for="txtFechaFin" value="Fecha Fin"/>
                        </p:column>
                        <p:column>
                            <p:calendar id="txtFechaFin" required="true" requiredMessage="*" value="#{maestroCampanaJsfBean.nuevaCampana.fechaFin}"
                                        size="12" navigator="true" pattern="dd/MM/yyyy"/>
                        </p:column>
                        <p:column>
                            <p:message for="txtFechaFin" display="text"/>
                        </p:column>
                        <p:column>
                            <p:outputLabel for="cmbEstado" value="Estado"/>
                        </p:column>
                        <p:column>
                            <p:selectOneMenu id="cmbEstado" required="true" requiredMessage="*"
                                             value="#{maestroCampanaJsfBean.nuevaCampana.estado}"
                                             style="width:100px;">
                                <f:selectItem itemLabel="Seleccione" itemValue="" noSelectionOption="true"/>
                                <f:selectItems value="#{maestroCampanaJsfBean.cmbEstado}"
                                               var="estadoSelect"
                                               itemLabel="#{estadoSelect.nombre}"
                                               itemValue="#{estadoSelect.codigo}"/>
                            </p:selectOneMenu>
                        </p:column>
                        <p:column>
                            <p:message for="cmbEstado" display="text"/>
                        </p:column>
                    </p:row>

                </p:panelGrid>


                <p:spacer height="10px"/>

                <p:spacer height="3px"/>
                <p:spacer height="3px"/>
                <h:panelGrid id="gridBusqueda3Dialog" columns="2" styleClass="centered">
                    <p:commandButton ajax="true" value="Guardar" id="cmdAceptarCampana"
                                     actionListener="#{maestroCampanaJsfBean.persistAction}"
                                     update=":frmPrincipal:panelResultados :frmnuevaCampana:gridBusquedaDialog :messages">
                        <f:attribute name="dialogName" value="wvCreateDialog"/>
                    </p:commandButton>
                    <p:commandButton ajax="true" value="Cancelar" id="cmdCancelarCampana" onclick="wvCreateDialog.hide()"
                                     type="button"
                                     immediate="true" process="@none"/>
                </h:panelGrid>
            </h:form>
        </p:panel>
    </p:dialog>
    <ui:decorate template="/pages/ui/uiDelete.xhtml">
        <ui:param name="jsfBean" value="#{maestroCampanaJsfBean}"/>
    </ui:decorate>
    <ui:decorate template="/pages/messageError.xhtml">
        <ui:param name="jsfBean" value="#{maestroCampanaJsfBean}"/>
    </ui:decorate>

</ui:define>
</ui:composition>
</html>